package com.zxf.appliction.redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;


/**
 * 创建redis客户端 : 非集群模式
 * 
 * @Created by zyj on 2016年12月15日
 * @Package com.demo.single.redis
 */
public class RedisClient {
	private static ThreadLocal<Jedis> threadLocal = new ThreadLocal<>();

	/**
	 * jedis连接池对象
	 */
	private static JedisPool jedisPool;

	static {
		// 初始化类时,初始化redis客户端连接池
		Init();
	}

	/**
	 * 客户端连接池初始化
	 * 
	 * @Created by zyj on 2016年12月15日
	 * @Version 1.0
	 */
	public static void Init() {
		try {
			//jedisPool = (JedisPool) ApplicationUtils.getBean("jedisPool1");
		} catch (Exception e) {
			System.err.println("%%%%%%% jedis连接池初始化失败 %%%%%%%%");
			e.printStackTrace();
		}
	}

	/**
	 * 获取jedis对象
	 * 
	 * @Created by zyj on 2016年12月15日
	 * @return
	 * @Version 1.0
	 */
	public static Jedis getClient() {
		Jedis client = threadLocal.get();
		if (client == null) {
			if (jedisPool != null) {
				try {
					client = jedisPool.getResource();
				} catch (Exception e) {
					System.err.println("从连接池中获取dfdfd连接失败");
					e.printStackTrace();
				}
				threadLocal.set(client);
			}
		}
		return client;
	}

	public static void close() {
		Jedis client = threadLocal.get();
		if (client != null) {
			client.close();
		}
	}

	private RedisClient() {
	}

}
